package edu.nf.vrs.vaccination.service;

import edu.nf.vrs.vaccination.dto.InoculatePeriodDTO;
import edu.nf.vrs.vaccination.dto.NeedleNumDTO;
import edu.nf.vrs.vaccination.dto.NeedleNumPageDTO;

import java.util.List;

/**
 * Author: @Wai
 * Date: 2022-3-30
 */
public interface NeedleNumService {

    /**
     * 创建针次，包括该针次的接种时段以及
     * 不同时段可接种的疫苗
     * @param dto
     */
    void addNeedleNum(NeedleNumDTO dto);

    /**
     * 疫苗总量自减
     * @param IpId 将要扣减的时段下的疫苗id
     * @param needleNumId 疫苗针次id
     */
    void decrTotal(Integer IpId, Integer needleNumId);

    /**
     * 针次列表信息查询
     * @param dto 查询条件
     * @param pageNum
     * @param pageSize
     * @return
     */
    NeedleNumPageDTO listNeedleNum(NeedleNumDTO dto, Integer pageNum, Integer pageSize);

    /**
     * 根据针次id查询预约时段信息（app端查询）
     * @param needleNumId
     * @return
     */
    List<InoculatePeriodDTO> listPeriodByNeedleNumId(Integer needleNumId);
}
